#include "TcpTaskThread.h"

TcpTaskThread::TcpTaskThread(QObject *parent)
    : QThread(parent), tcpTask(nullptr)
{
    tcpTask = new TcpTask();

    // 连接 TcpTask 的 free 信号到 TcpTaskThread 的退出槽
    connect(tcpTask, &TcpTask::free, this, &TcpTaskThread::onFree);
}

TcpTaskThread::~TcpTaskThread()
{
    if (tcpTask) {
        tcpTask->deleteLater();
    }
}

TcpTask *TcpTaskThread::getTcpTask() const
{
    return tcpTask;
}

void TcpTaskThread::run()
{
    exec(); // 启动事件循环
}

void TcpTaskThread::onFree()
{
    // 退出事件循环并结束线程
    quit();
    wait(); // 等待线程完全退出
}
